package com.redepronik.negosys.invfac.service;

import java.util.Date;
import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.redepronik.negosys.invfac.entity.Bodega;
import com.redepronik.negosys.invfac.entity.Detalleingreso;
import com.redepronik.negosys.invfac.entity.Ingreso;
import com.redepronik.negosys.invfac.entity.Producto;
import com.redepronik.negosys.invfac.entity.Tipodocumento;
import com.redepronik.negosys.invfac.entityAux.ChequeReporte;

public interface IngresoService {

	@Transactional
	public String actualizar(Ingreso ingreso);

	@Transactional
	public Long contar();

	@Transactional
	public void comprobar(Ingreso ingreso, Tipodocumento tipoDocumento);

	@Transactional
	public void eliminar(Ingreso ingreso);

	@Transactional
	public void eliminarDetalle(Ingreso ingreso, Detalleingreso detalleIngreso);

	@Transactional
	public boolean insertar(Ingreso ingreso);

	@Transactional
	public void insertarDetalle(Ingreso ingreso, Producto producto,
			Bodega bodega, Detalleingreso detalleIngreso);

	@Transactional
	public List<Ingreso> obtener(Boolean activo);

	@Transactional(readOnly = true)
	public List<Ingreso> obtener(String criterioBusquedaCliente,
			String criterioBusquedaCodigo, String criterioBusquedaDetalle);

	@Transactional
	public List<ChequeReporte> obtenerChequesPorFechas(Date fechaInicio,
			Date fechaFin);

	@Transactional
	public Ingreso obtenerPorIngresoId(Long ingresoId);
}